Apache POI লাইব্রেরি ব্যবহার করে Microsoft Word ডকুমেন্টে টেবিল তৈরি এবং সম্পাদনা করা সম্ভব। আপনি XWPFTable এবং তার উপাদানগুলি ব্যবহার করে Word ডকুমেন্টে টেবিল তৈরি, সেল যোগ, সেল মর্জ, সেল ফরম্যাটিং ইত্যাদি করতে পারেন। এই টিউটোরিয়ালে আমরা Word ডকুমেন্টে টেবিল ব্যবস্থাপনার বিভিন্ন দিক দেখব।
Word ডকুমেন্টে টেবিল তৈরি করতে হলে আপনাকে XWPFTable ক্লাস ব্যবহার করতে হবে। একটি টেবিল সাধারণত XWPFTableRow (টেবিলের সারি) এবং XWPFTableCell (টেবিলের সেল) দ্বারা গঠিত।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableExample {
public static void main(String[] args) {
try {
// নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা (2 সারি এবং 3 কলাম)
XWPFTable table = document.createTable(2, 3);
// প্রথম সারির প্রথম সেল সেট করা
XWPFTableRow row1 = table.getRow(0);
XWPFTableCell cell1 = row1.getCell(0);
cell1.setText("Cell 1");
// প্রথম সারির দ্বিতীয় সেল সেট করা
XWPFTableCell cell2 = row1.getCell(1);
cell2.setText("Cell 2");
// প্রথম সারির তৃতীয় সেল সেট করা
XWPFTableCell cell3 = row1.getCell(2);
cell3.setText("Cell 3");
// দ্বিতীয় সারির প্রথম সেল সেট করা
XWPFTableRow row2 = table.getRow(1);
XWPFTableCell cell4 = row2.getCell(0);
cell4.setText("Cell 4");
// দ্বিতীয় সারির দ্বিতীয় সেল সেট করা
XWPFTableCell cell5 = row2.getCell(1);
cell5.setText("Cell 5");
// দ্বিতীয় সারির তৃতীয় সেল সেট করা
XWPFTableCell cell6 = row2.getCell(2);
cell6.setText("Cell 6");
// Word ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("table_example.docx");
document.write(out);
out.close();
System.out.println("Word document created with table.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
টেবিলের সেলগুলোতে Run যোগ করে টেক্সটের ফরম্যাটিং করা যায়। আপনি XWPFRun ব্যবহার করে সেলের টেক্সটকে বোল্ড, ইটালিক বা আন্ডারলাইন করতে পারেন।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableFormattingExample {
public static void main(String[] args) {
try {
// নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা (2 সারি এবং 3 কলাম)
XWPFTable table = document.createTable(2, 3);
// প্রথম সারির প্রথম সেল সেট করা
XWPFTableRow row1 = table.getRow(0);
XWPFTableCell cell1 = row1.getCell(0);
XWPFRun run1 = cell1.addParagraph().createRun();
run1.setText("Bold Text");
run1.setBold(true);
// প্রথম সারির দ্বিতীয় সেল সেট করা
XWPFTableCell cell2 = row1.getCell(1);
XWPFRun run2 = cell2.addParagraph().createRun();
run2.setText("Italic Text");
run2.setItalic(true);
// প্রথম সারির তৃতীয় সেল সেট করা
XWPFTableCell cell3 = row1.getCell(2);
XWPFRun run3 = cell3.addParagraph().createRun();
run3.setText("Underlined Text");
run3.setUnderline(UnderlinePatterns.SINGLE);
// Word ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("table_with_formatting.docx");
document.write(out);
out.close();
System.out.println("Word document created with formatted table.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Apache POI ব্যবহার করে আপনি টেবিলের সেল মার্জ করতে পারেন। অর্থাৎ, আপনি একাধিক সেলকে একত্রিত (merge) করতে পারবেন।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableMergeCellsExample {
public static void main(String[] args) {
try {
// নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা (2 সারি এবং 3 কলাম)
XWPFTable table = document.createTable(2, 3);
// প্রথম সারির প্রথম সেল মার্জ করা
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setText("Merged Cell");
row1.getCell(0).getCTTc().addNewVMerge().setVal(STMerge.RESTART);
row1.getCell(1).getCTTc().addNewVMerge().setVal(STMerge.CONTINUE);
// দ্বিতীয় সারির প্রথম সেল মার্জ করা
XWPFTableRow row2 = table.getRow(1);
row2.getCell(1).setText("Merged with above");
// Word ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("merged_cells_table.docx");
document.write(out);
out.close();
System.out.println("Word document created with merged table cells.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
আপনি চাইলে টেবিলের সেলগুলির আকার কাস্টমাইজ করতে পারেন, যেমন সেল ব্যাটন, কলামের প্রস্থ ইত্যাদি।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableCellSizeExample {
public static void main(String[] args) {
try {
// নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা (2 সারি এবং 3 কলাম)
XWPFTable table = document.createTable(2, 3);
// প্রথম সারির প্রথম সেলের আকার কাস্টমাইজ করা
XWPFTableRow row1 = table.getRow(0);
XWPFTableCell cell1 = row1.getCell(0);
XmlCursor cursor = cell1.getCTR().newCursor();
cursor.setCursorPosition(cursor.getSelectionStart());
cursor.toNextToken();
cursor.insertElement("
w:vMerge");
// সেল প্রস্থ পরিবর্তন করা
table.getCTTbl().getTblGrid().addNewGridCol().setW(5000); // কলাম প্রস্থ সেট করা
// Word ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("table_with_custom_cell_size.docx");
document.write(out);
out.close();
System.out.println("Word document created with customized table cell size.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
---
### সারাংশ
**Apache POI** লাইব্রেরি ব্যবহার করে আপনি **Word** ডকুমেন্টে টেবিল তৈরি এবং সম্পাদনা করতে পারেন। এর মাধ্যমে আপনি টেবিলের সেলগুলিতে টেক্সট যোগ করতে পারেন, সেল ফরম্যাটিং যেমন বোল্ড, ইটালিক, আন্ডারলাইন করতে পারেন, সেল মার্জ করতে পারেন এবং কলাম বা সারির আকার কাস্টমাইজ করতে পারেন। এটি বিশেষত ডাইনামিক কন্টেন্ট তৈরি বা রিপোর্ট জেনারেশনের জন্য উপকারী।
Apache POI লাইব্রেরি ব্যবহার করে আপনি সহজেই Word ডকুমেন্টে টেবিল (Table) তৈরি করতে পারেন। XWPFTable ক্লাসটির মাধ্যমে আপনি .docx ফাইলের মধ্যে টেবিল তৈরি, সম্পাদনা এবং কাস্টমাইজ করতে পারবেন। এই উদাহরণে আমরা একটি সাধারণ টেবিল তৈরি করব এবং এতে কিছু ডাটা যুক্ত করব।
import org.apache.poi.xwpf.usermodel.*;
import java.io.*;
public class CreateTableInWord {
public static void main(String[] args) {
try {
// নতুন Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// প্রথম রো যোগ করা
XWPFTableRow row = table.getRow(0);
row.getCell(0).setText("নাম");
row.addNewTableCell().setText("বয়স");
row.addNewTableCell().setText("শহর");
// দ্বিতীয় রো যোগ করা
row = table.createRow();
row.getCell(0).setText("জন");
row.getCell(1).setText("২৫");
row.getCell(2).setText("ঢাকা");
// তৃতীয় রো যোগ করা
row = table.createRow();
row.getCell(0).setText("মিনা");
row.getCell(1).setText("৩০");
row.getCell(2).setText("চট্টগ্রাম");
// ডকুমেন্টটি সেভ করা
FileOutputStream out = new FileOutputStream("document_with_table.docx");
document.write(out);
out.close();
System.out.println("Word ডকুমেন্টে টেবিল সফলভাবে তৈরি করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এই কোডটি একটি টেবিল সহ document_with_table.docx নামক Word ডকুমেন্ট তৈরি করবে, যেখানে তিনটি রো এবং তিনটি কলাম থাকবে।
আপনি XWPFTable এর মাধ্যমে টেবিলের বিভিন্ন স্টাইল কাস্টমাইজ করতে পারেন। নিচে কিছু অতিরিক্ত স্টাইল কাস্টমাইজেশন দেওয়া হলো:
// টেবিলের সীমানা সেট করা
table.setTableBorder(XWPFTable.XWPFBorderType.SINGLE, 1, 0, 0, 0);
// সেল স্টাইল কাস্টমাইজ করা
XWPFTableCell cell = row.getCell(0);
cell.setColor("FFFF00"); // সেল রঙ হলুদ
cell.setText("এটি একটি স্টাইলড সেল");
// কলামের প্রস্থ কাস্টমাইজ করা
row.getCell(0).getCTTc().getTcPr().addNewTcW().setW(2000); // প্রস্থ 2000 ইউনিট
// রো এলাইনমেন্ট (সেন্টার)
table.setTableAlignment(TableRowAlignment.CENTER);
Apache POI লাইব্রেরি ব্যবহার করে XWPFTable ক্লাসের মাধ্যমে আপনি খুব সহজেই Word ডকুমেন্টে টেবিল তৈরি করতে পারেন। আপনি টেবিলের মধ্যে রো এবং সেল যোগ করতে পারেন, টেবিলের সীমানা (borders), সেল রঙ, এবং কলাম প্রস্থ কাস্টমাইজ করতে পারেন। উপরোক্ত উদাহরণে দেখানো হয়েছে কিভাবে একটি সাধারণ টেবিল তৈরি করা হয় এবং এতে ডাটা যুক্ত করা হয়।
Apache POI এর XWPF API ব্যবহার করে আপনি Word ডকুমেন্টে টেবিল তৈরি এবং এতে rows (সারি) এবং columns (কলাম) যোগ করতে পারেন। একটি টেবিলের মধ্যে ডেটা ইনসার্ট করা এবং সেগুলোর সেল (cell) কনটেন্ট সেট করা খুবই সহজ। এখানে আমরা টেবিলের রো (row) এবং কলাম (column) যোগ করার প্রক্রিয়া দেখবো।
প্রথমে একটি নতুন Word ডকুমেন্ট তৈরি করতে হবে, তারপর টেবিল তৈরি এবং এতে সেল যোগ করা হবে।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableInWordDocument {
public static void main(String[] args) throws IOException {
// নতুন Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// প্রথম সারির সেল যোগ করা (প্রথম কলাম)
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setText("নাম");
row1.addNewTableCell().setText("বয়স");
row1.addNewTableCell().setText("শহর");
// দ্বিতীয় সারির সেল যোগ করা
XWPFTableRow row2 = table.createRow();
row2.getCell(0).setText("জন Doe");
row2.getCell(1).setText("30");
row2.getCell(2).setText("ঢাকা");
// তৃতীয় সারির সেল যোগ করা
XWPFTableRow row3 = table.createRow();
row3.getCell(0).setText("মালা Roy");
row3.getCell(1).setText("25");
row3.getCell(2).setText("চট্টগ্রাম");
// ডকুমেন্ট সংরক্ষণ
FileOutputStream out = new FileOutputStream("TableExample.docx");
document.write(out);
out.close();
System.out.println("টেবিল সহ ডকুমেন্ট তৈরি এবং সংরক্ষণ করা হয়েছে।");
}
}
এখন, আপনি একটি টেবিলের সেলগুলোর মধ্যে টেক্সট যোগ করতে পারেন। উপরোক্ত কোডের মাধ্যমে তিনটি সারি এবং প্রতিটি সারিতে তিনটি কলাম তৈরি করা হয়েছে, যেখানে প্রতিটি সেলে টেক্সট যোগ করা হয়েছে। আপনি একই পদ্ধতিতে আরও সারি এবং কলাম যোগ করতে পারেন।
// চতুর্থ সারি যোগ করা
XWPFTableRow row4 = table.createRow();
row4.getCell(0).setText("রাহুল Kumar");
row4.getCell(1).setText("28");
row4.getCell(2).setText("রাজশাহী");
// পঞ্চম সারি যোগ করা
XWPFTableRow row5 = table.createRow();
row5.getCell(0).setText("সুমি Roy");
row5.getCell(1).setText("32");
row5.getCell(2).setText("বরিশাল");
এইভাবে আপনি আরও সারি এবং কলাম যোগ করতে পারেন।
Apache POI এ, একটি টেবিলের রো (row) এবং কলাম (column) সংখ্যা ডাইনামিকভাবে পরিবর্তন করা সম্ভব নয় (যেমন, কোনো নির্দিষ্ট কলাম সরানো বা পুনর্বিন্যাস করা)। তবে আপনি টেবিলের মধ্যে নতুন সারি ও কলাম যুক্ত করতে পারেন বা বিদ্যমান সেলকে নতুন মান দিয়ে প্রতিস্থাপন করতে পারেন।
Apache POI এর XWPF API ব্যবহার করে আপনি Word ডকুমেন্টে সহজেই টেবিল তৈরি, সারি (row) এবং কলাম (column) যোগ করতে পারেন। প্রতিটি সেলে তথ্য প্রবেশ করানো এবং টেবিলের স্ট্রাকচার তৈরি করা খুবই সরল। এটি আপনার ডকুমেন্টে তথ্য উপস্থাপনার জন্য অত্যন্ত কার্যকর একটি টুল।
Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্টে Table তৈরি, Cell Merging, এবং Table Formatting করতে পারবেন। নিচে টেবিল সম্পর্কিত কাজগুলোর বিস্তারিত ব্যাখ্যা দেওয়া হলো।
প্রথমে, XWPFTable ব্যবহার করে একটি টেবিল তৈরি করা হয়। এই টেবিলের মধ্যে XWPFTableRow এবং XWPFTableCell ক্লাসের মাধ্যমে প্রতিটি সারি এবং সেলের বিষয়বস্তু নিয়ন্ত্রণ করা হয়।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateTableExample {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// প্রথম সারি তৈরি
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setText("Cell 1");
row1.addNewTableCell().setText("Cell 2");
// দ্বিতীয় সারি তৈরি
XWPFTableRow row2 = table.createRow();
row2.getCell(0).setText("Cell 3");
row2.getCell(1).setText("Cell 4");
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("table_example.docx");
document.write(out);
out.close();
}
}
এখানে, প্রথমে একটি টেবিল তৈরি করা হয়েছে এবং তারপরে প্রতিটি সারিতে সেল যোগ করা হয়েছে।
আপনি যদি টেবিলের একটি বা একাধিক সেল একত্রিত করতে চান, তাহলে XWPFTableCell এর merge() মেথড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি প্রথম সারির প্রথম দুই সেল একত্রিত করতে চান:
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class MergeCellsExample {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// প্রথম সারি তৈরি
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setText("Merged Cell 1");
row1.addNewTableCell().setText("Cell 2");
// দ্বিতীয় সারি তৈরি
XWPFTableRow row2 = table.createRow();
row2.getCell(0).setText("Cell 3");
row2.getCell(1).setText("Cell 4");
// প্রথম সারির প্রথম দুটি সেল একত্রিত করা
row1.getCell(0).merge(row1.getCell(1));
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("merged_cells_example.docx");
document.write(out);
out.close();
}
}
এখানে, merge()
মেথড ব্যবহার করে প্রথম সারির প্রথম দুটি সেল একত্রিত করা হয়েছে।
Apache POI ব্যবহার করে আপনি টেবিলের বিভিন্ন অংশের ফরম্যাটিং করতে পারেন, যেমন টেবিলের প্রান্ত, সেলের স্টাইল, টেক্সট ফরম্যাটিং ইত্যাদি।
টেবিলের সীমানা এবং প্রান্ত কাস্টমাইজ করার জন্য XWPFTable এর setTableBorders() মেথড ব্যবহার করা হয়।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class TableBorderExample {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// টেবিলের সীমানা সেট করা
table.setTableBorders(TableCellBorderType.SINGLE);
// প্রথম সারি তৈরি
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setText("Cell 1");
row1.addNewTableCell().setText("Cell 2");
// দ্বিতীয় সারি তৈরি
XWPFTableRow row2 = table.createRow();
row2.getCell(0).setText("Cell 3");
row2.getCell(1).setText("Cell 4");
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("table_with_border.docx");
document.write(out);
out.close();
}
}
এখানে, setTableBorders()
ব্যবহার করে টেবিলের সীমানা নির্ধারণ করা হয়েছে।
একইভাবে, সেলের টেক্সট অ্যালাইনমেন্ট (center, left, right) নিয়ন্ত্রণ করতে XWPFTableCell এর setTextAlignment() মেথড ব্যবহার করা হয়।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class CellAlignmentExample {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি
XWPFTable table = document.createTable();
// প্রথম সারি তৈরি
XWPFTableRow row1 = table.getRow(0);
XWPFTableCell cell1 = row1.getCell(0);
cell1.setText("Left Aligned");
cell1.setTextAlignment(ParagraphAlignment.LEFT); // বামদিকে অ্যালাইন করা
// দ্বিতীয় সারি তৈরি
XWPFTableRow row2 = table.createRow();
XWPFTableCell cell2 = row2.getCell(0);
cell2.setText("Right Aligned");
cell2.setTextAlignment(ParagraphAlignment.RIGHT); // ডানদিকে অ্যালাইন করা
// ডকুমেন্ট সেভ করা
FileOutputStream out = new FileOutputStream("cell_alignment_example.docx");
document.write(out);
out.close();
}
}
এখানে, setTextAlignment()
ব্যবহার করে সেলের টেক্সট অ্যালাইনমেন্ট পরিবর্তন করা হয়েছে।
Apache POI এর মাধ্যমে Table তৈরি, Cell Merging, এবং Table Formatting করা খুবই সহজ। টেবিলের সেল একত্রিত করার জন্য merge() মেথড এবং টেবিলের ফরম্যাটিং কাস্টমাইজ করার জন্য বিভিন্ন মেথড যেমন setTableBorders() এবং setTextAlignment() ব্যবহৃত হয়। এর মাধ্যমে আপনি Word ডকুমেন্টে প্রফেশনাল এবং কাস্টমাইজড টেবিল তৈরি করতে পারবেন।
Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে ডাইনামিক টেবিল তৈরি এবং ডেটা বাইন্ডিং করার প্রক্রিয়া খুবই সহজ। আপনি যদি ডাইনামিক ডেটা (যেমন ডেটাবেস বা অন্য কোনো সোর্স থেকে আসা ডেটা) ব্যবহার করে টেবিল তৈরি করতে চান, তবে এটি কিছু কাস্টম লজিকের মাধ্যমে সম্ভব।
এখানে দেখানো হবে কিভাবে ডাইনামিক টেবিল তৈরি করা যায় এবং কিভাবে ডেটাকে টেবিলের মধ্যে বাইন্ড করা যায়।
প্রথমে একটি সাধারণ টেবিল তৈরি করা হবে এবং পরে ডাইনামিক ডেটা যোগ করা হবে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class DynamicTableExample {
public static void main(String[] args) throws IOException {
// একটি নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা
XWPFTable table = document.createTable();
// টেবিলের প্রথম রো (হেডার রো) তৈরি করা
XWPFTableRow headerRow = table.getRow(0);
XWPFTableCell cell1 = headerRow.getCell(0);
cell1.setText("ID");
XWPFTableCell cell2 = headerRow.createCell();
cell2.setText("Name");
XWPFTableCell cell3 = headerRow.createCell();
cell3.setText("Age");
// ডাইনামিক ডেটা (List of data)
List<String[]> data = new ArrayList<>();
data.add(new String[]{"1", "John Doe", "28"});
data.add(new String[]{"2", "Jane Smith", "35"});
data.add(new String[]{"3", "Mike Johnson", "45"});
// ডেটা টেবিলের মধ্যে বাইন্ড করা
for (String[] rowData : data) {
XWPFTableRow row = table.createRow(); // নতুন রো তৈরি
row.getCell(0).setText(rowData[0]); // ID
row.getCell(1).setText(rowData[1]); // Name
row.getCell(2).setText(rowData[2]); // Age
}
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("DynamicTableInWord.docx")) {
document.write(out);
}
System.out.println("Word document with dynamic table created successfully!");
}
}
যদি আপনি ডাইনামিকভাবে ফিল্ড এবং রো সংখ্যা নির্ধারণ করতে চান, তবে আপনি আরও কাস্টমাইজেশন করতে পারবেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে টেবিলের হেডার এবং রো সংখ্যা উভয়ই ডাইনামিকভাবে কনফিগার করা হয়েছে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class CustomDynamicTableExample {
public static void main(String[] args) throws IOException {
// একটি নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা
XWPFTable table = document.createTable();
// ডাইনামিক হেডার তৈরি
String[] headers = {"ID", "Name", "Position", "Salary"};
XWPFTableRow headerRow = table.getRow(0);
for (String header : headers) {
XWPFTableCell cell = headerRow.createCell();
cell.setText(header);
}
// ডাইনামিক ডেটা
List<String[]> data = List.of(
new String[]{"1", "Alice", "Manager", "$5000"},
new String[]{"2", "Bob", "Developer", "$4000"},
new String[]{"3", "Charlie", "Designer", "$3500"}
);
// ডেটা টেবিলের মধ্যে বাইন্ড করা
for (String[] rowData : data) {
XWPFTableRow row = table.createRow(); // নতুন রো তৈরি
for (String cellData : rowData) {
row.createCell().setText(cellData);
}
}
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("CustomDynamicTable.docx")) {
document.write(out);
}
System.out.println("Word document with custom dynamic table created successfully!");
}
}
টেবিলের শৈলী কাস্টমাইজ করার জন্য XWPFTable ক্লাসের মধ্যে বিভিন্ন শৈলী প্রয়োগ করা যেতে পারে, যেমন টেবিলের বর্ডার, সেল প্যাডিং, এবং টেক্সট ফরম্যাটিং।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import java.io.FileOutputStream;
import java.io.IOException;
public class StyledDynamicTableExample {
public static void main(String[] args) throws IOException {
// একটি নতুন Word ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
// টেবিল তৈরি করা
XWPFTable table = document.createTable();
// টেবিলের শৈলী কাস্টমাইজেশন
table.setTableWidth(5000); // টেবিলের প্রস্থ সেট করা
table.setWidth("100%"); // টেবিলের সম্পূর্ণ প্রস্থ সেট করা
// হেডার রো তৈরি করা
XWPFTableRow headerRow = table.getRow(0);
String[] headers = {"ID", "Name", "Department"};
for (String header : headers) {
XWPFTableCell cell = headerRow.createCell();
cell.setText(header);
cell.setColor("A5A5A5"); // হেডার সেলের কালার সেট করা
}
// ডাইনামিক ডেটা যোগ করা
String[][] data = {{"1", "John", "HR"}, {"2", "Emma", "IT"}};
for (String[] rowData : data) {
XWPFTableRow row = table.createRow();
for (String cellData : rowData) {
XWPFTableCell cell = row.createCell();
cell.setText(cellData);
}
}
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("StyledDynamicTable.docx")) {
document.write(out);
}
System.out.println("Word document with styled dynamic table created successfully!");
}
}
A5")**: হেডার সেলের ব্যাকগ্রাউন্ড কালার পরিবর্তন করা।
Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে ডাইনামিক টেবিল তৈরি এবং ডেটা বাইন্ডিং করা সম্ভব। আপনি টেবিলের হেডার এবং রো ডাইনামিকভাবে তৈরি করতে পারেন এবং ডেটা বাইন্ডিং করে টেবিলের মধ্যে ডেটা যোগ করতে পারেন। এছাড়া, টেবিলের শৈলী কাস্টমাইজ করে ফন্ট কালার, ব্যাকগ্রাউন্ড কালার, এবং টেবিলের প্রস্থ নিয়ন্ত্রণ করা সম্ভব।
common.read_more